<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. 同步回调函数
        const arr = [1, 2, 3]
        arr.forEach(item => {// 同步执行的回调函数, forEach()内部在执行完所有回调函数后才结束, 不会放入回调队列中
            console.log('forEach callback()', item)
        })
        console.log('forEach()之后')

        // 2. 异步回调函数
        setTimeout(() => { // 异步执行的回调函数, setTimeout()在回调函数执行前就结束了, 回调会放入回调队列中在同步代码执行完后才会执行
            console.log('setTimeout callback()')
        }, 0)
        console.log('setTimeout()之后')

        // 如何判断是同步回调还是异步回调
        // 在回调函数内，和回调函数后面输出，如果按顺序输出就是同步，如果后面先，回调内容后，就是异步回调

    </script>
</body>

</html>